package org.aplombh.java.awcing.basic.basics.bitOperation;

import java.util.Scanner;

/**
 * 给定一个长度为 n 的数列，请你求出数列中每个数的二进制表示中 1 的个数。
 * <p>
 * 输入格式
 * 第一行包含整数 n。
 * <p>
 * 第二行包含 n 个整数，表示整个数列。
 * <p>
 * 输出格式
 * 共一行，包含 n 个整数，其中的第 i 个数表示数列中的第 i 个数的二进制表示中 1 的个数。
 * <p>
 * 数据范围
 * 1≤n≤100000,
 * 0≤数列中元素的值≤109
 * 输入样例：
 * 5
 * 1 2 3 4 5
 * 输出样例：
 * 1 1 2 1 2
 */
public class TheNumberOfOnesInBinary_801 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int num;
        while (n-- != 0) {
            num = 0;
            int m = scanner.nextInt();
//            for (int k = 31; k >= 0; k--) if (((m >> k) & 1) == 1) num++;
            for (; m != 0; m >>= 1) if ((m  & 1) == 1) num++;
            System.out.print(num + " ");
        }
    }
}
